package javacommon.base;

import java.io.Serializable;
import java.sql.SQLException;
import java.util.List;

import javacommon.web.page.Page;
import javacommon.web.page.PageRequest;

/**
 * 所有实体dao的祖先类
 * @author  
 */
public interface EntityDao <E>{

    /** 插入数据 */
    public void save(E entity)throws SQLException;
    /**
     * 根据id删除数据
     * @param id
     * @throws SQLException
     */
    public void deleteById(Serializable id) throws SQLException;
    /** 更新数据 */
    public void update(E entity)throws SQLException;
    /**
     * 查询所有数据
     * @return
     * @throws SQLException
     */
    public List<E> findAll()throws SQLException;
    /**
     * 根据id查询单笔数据
     * @param id
     * @return
     * @throws SQLException
     */
	public E getById(Serializable id)throws SQLException;
	/**
	 * 根据分页对象（分页信息），得到想查询的数据
	 * @param pageRequest
	 * @return
	 * @throws SQLException
	 */
	public Page<E> findPage(PageRequest<E> pageRequest)throws SQLException;
	public abstract void deleteByIds(String[] ids) throws SQLException;
}
